Repository navigation
feat(tracing): the host leaves the records a Java or Rust callee leaves, so a span lineage is continuous into the pack - #53
Merged
Conversation
…es, so a span lineage is continuous into the pack A live drive of the engines' agent loop through both packs found the pack legs absent from the trace: the engine's HTTP client leg is in skip.rpc.tracing and the host suppressed its record for every RPC-served execution. Now a traced call at /api/event leaves http.request (the edge's round trip, under the caller's span), event.api.service and the function's round-trip record with the responder's span - the records REST automation, EventApiService and InboxBase leave in the Java engine; a reply carries the responder's span (WorkerHandler parity) and the PostOffice records a local RPC round trip as an engine inbox does. Re-driven: 20 records per run, every parent owned by a record. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
acn-ericlaw
added a commit
that referenced
this pull request
Nov 14, 2026
…ler, recorded as landed Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
A traced call arriving at
/api/eventnow leaves the records a Java or Rust callee leaves for the same call:http.request(
POST /api/event, the edge's round trip, parented onto the caller's span - the envelope's span, else thetraceparentheader's; the backend's SERVER span),
event.api.service(the ingress, parented onto the edge) and, for an RPC, thefunction's round-trip record with the responder's span and
round_trip, parented onto the service. The relayed envelopecarries the service's span, so a drop-n-forget or streaming function parents onto it; a refusal (403, 404), a timeout (408)
and an in-band stream failure leave the edge record with that status; an untraced call records nothing. A reply carries the
responder's span (
WorkerHandlerparity), and thePostOfficerecords a traced local RPC round trip the way an engine inboxdoes (
InboxBase). The two tests that pinned "RPC legs emit no dataset" now pin the engines' rule, and a new test pins thewire RPC's three records, the span on the reply, the refusal's edge record and the silence of an untraced call. The guide
states who emits which record; CHANGELOG Unreleased Changed 4; the MCP binding's README gains a Tracing paragraph.
ruffclean,
basedpyright0 errors,pytest398 passed.Why
Eric's criterion for an OpenTelemetry certification: the span lineage must be continuous end to end. The live drive of the
agent loop (the Playground's
diagram-assistantgraph on Haiku 4.5 through this pack's helper and MCP binding) found everyengine record chained and the pack legs absent: the engine's HTTP client leg is in
skip.rpc.tracingby default and thishost suppressed its own record for every RPC-served execution, so
llm.chatanddiagram.render.mcpwere only time insidethe engine's
llm.runanddiagram.render. Re-driven with this change: 20 records per run, every parent owned by a record.The Node twin follows in lockstep; the record is the engines'
docs/test-reports/agent-loop-trace-lineage.md.🤖 Generated with Claude Code
Co-Authored-By: Claude Fable 5.1 noreply@anthropic.com